<?php
namespace TwinPeaks\Core;

abstract class CType
{
	/**
	 * 
	 */
	const STRING = 1;

	/**
	 * @var mixed
	 */
	private $value;

	/**
	 * @var integer
	 */
	protected $type;
	
	function __construct($value)
	{
		$this->value = $value;
	}
	
	/**
	 * @return integer
	 */
	final function getType()
	{
		return $this->type;
	}
	
	/**
	 * @return CType
	 */
	static function assign($value)
	{
		$newValue = new static($value);
		return $newValue;
	}


	/**
	 * @return
	 */
	final static function assertEquals()
	{
	}
}
